package ModelLayer;
import sun.security.jca.GetInstance;

import java.text.DecimalFormat;
import java.util.ArrayList;

public class OrdreCollectionModel {

    //Properties
    private ArrayList<OrdreModel> ordreListe;
    private ArrayList<DelOrdreModel> delOrdreListe;
    private static OrdreCollectionModel instance;

    //Constructor
    private OrdreCollectionModel(){
        //Initialiserer ordreListe og delOrdreListe
        ordreListe = new ArrayList<OrdreModel>();
        delOrdreListe = new ArrayList<DelOrdreModel>();
    }

    public static OrdreCollectionModel getInstance(){
        if(instance == null){
            instance = new OrdreCollectionModel();
        }

        return instance;
    }

    public ArrayList<OrdreModel> getOrdreListe() {
        return ordreListe;
    }

    public ArrayList<DelOrdreModel> getDelOrdreModel() {
        return delOrdreListe;
    }

    public void tilføjOrdre(OrdreModel o){
        ordreListe.add(o);
    }

    //Tilføjer en ordre
    public void tilføjDelOrdre(DelOrdreModel dom){
        delOrdreListe.add(dom);
    }

    //Printer en ordre
    public void printOrdre(){
        for(OrdreModel o : ordreListe){
            System.out.println("Ordre ID: " + o.getId());
            System.out.println("Status: " + o.getStatus());
            System.out.println("Dato: " + o.getDato());
        }
    }

    //Printer alle delordrer
    public void printDelOrdre(){
        for(DelOrdreModel dom : delOrdreListe){
            System.out.println(
                    "Vare ID: " + dom.getVareID() +
                    " Pris: " + dom.getVare().getPris() +
                    " Beskrivelse: " + dom.getVare().getBeskrivelse() +
                    " Antal: " + dom.getAntal()
            );
        }
    }

    //Udregner den samlede pris for alle varer i alle delordrer
    public double samletPris(){
        double totalPris = 0;
        double totalAfrundetPris;

        for(DelOrdreModel dom : delOrdreListe){
            totalPris = totalPris + dom.getVare().getPris() * dom.getAntal();
        }

        totalAfrundetPris = (double)Math.round(totalPris * 100) / 100;

        return totalAfrundetPris;
    }


}